import Vue from 'vue'

import loading from '@/components/loading/loading'
// 生成组件
const CreateLoading = Vue.extend(loading)
// 实例化loading组件

const instence = new CreateLoading({
    el:document.createElement('div')  //挂载点
})

instence.show = false  //控制组件显示或隐藏

const $loading = {
    // 用来让loading显示
    show(msg) {
        document.body.appendChild(instence.$el)
        instence.show = true
        instence.msg = msg
    },
    // 用来让loading隐藏
    hide() {
        instence.show = false 
    }
}

export default {
    install() {  //安装方法
        if(!Vue.$loading) {//判断Vue中是否有$loading方法,没有就加一个
            Vue.$loading =$loading
        }
        // 如果vue中有$loading 方法将方法混入到使用的组件内
        Vue.mixin({
            created() {
                this.$loading = Vue.$loading
            }
        })
    }
}